<!DOCTYPE html>
<html lang="ja">

<head>
	<meta charset="UTF-8"/>
	<meta name="keywords" content="シンタックス"/>
	<link rel="stylesheet" href="../../Shared/sty/standard.css"/>
	<script defer src="../../Shared/js/toc.js"></script>
	
	<title>MacのCotEditorでシンタックスハイライトを定義する</title>
</head>

<body>
<a name="syntax_highlight_settings"></a>

<h1>MacのCotEditorでシンタックスハイライトを定義する</h1>

<p>シンタックスのハイライトを定義するには、シンタックスエディタの左のリストからハイライト条件を追加したい要素を選択し、右側のリストに条件を追加します。シンタックスエディタの開き方は、<a href="syntax_definition.html">シンタックスを定義する</a>を参照してください。</p>


<section>
<p>CotEditorでは、シンタックスハイライトでハイライトできる要素の種類が、テーマに対応してすでに決められています。それぞれの要素は以下の通りです:</p>

<table>
	<thead>
		<tr><th>要素</th><th>説明</th><th>例</th></tr>
	</thead>
	
	<tbody>
	<tr><th>キーワード</th>
	<td>プログラミング言語の予約語など</td>
	<td><code>for</code>, <code>while</code>, <code>if</code></td></tr>
	
	<tr><th>コマンド</th>
	<td>プログラミング言語の関数やコマンド</td>
	<td><code>print</code>, <code>filter</code>, <code>func()</code></td></tr>
	
	<tr><th>タイプ</th>
	<td>プログラミング言語の型や構造化言語の見出しなど</td>
	<td><code>int</code>, <code>bool</code>, <code>Object</code></td></tr>
	
	<tr><th>属性</th>
	<td>属性や補足情報など</td>
	<td><code>&lt;html <span style="color:-apple-system-blue">lang</span>=&quot;ja&quot;&gt;</code>, <code>@classmethod</code></td></tr>
	
	<tr><th>変数</th>
	<td>プログラミング言語の変数</td>
	<td><code>$foo</code>, <code>self</code></td></tr>
	
	<tr><th>値</th>
	<td>プログラミング言語の固定値</td>
	<td><code>Null</code>, <code>True</code>, <code>False</code></td></tr>
	
	<tr><th>数値</th>
	<td>数値型のデータ</td>
	<td><code>Int i = <span style="color: -apple-system-blue;">0</span>;</code></td></tr>
	
	<tr><th>文字列</th>
	<td>文字列型のデータ</td>
	<td><code>String s = <span style="color: -apple-system-blue">&quot;Hello World&quot;</span></code></td></tr>
	
	<tr><th>文字</th>
	<td>文字型のデータ</td>
	<td><code>Char c = <span style="color: -apple-system-blue">'a'</span></code></td></tr>
	
	<tr><th>コメント</th>
	<td>プログラム中のコメント</td>
	<td><code>/* 〜 */</code>, <code># 〜</code></td></tr>
	</tbody>
</table>

<p>ハイライトは最上位の「キーワード」から「コマンド」、「タイプ」、…、と順に適用されます。もし、同一の範囲が複数の要素に一致する場合は、後のハイライトで上塗りされます。各要素の名前は目安のため、実際には別の文法上の用途を当てることもできます。</p>
</section>


<section>
<h2>シンタックスハイライトの条件を定義する</h2>

<p>ハイライトを定義するには、ハイライトをしたい特定のテキスト、テキストの開始文字列と終了文字列、もしくは正規表現パターンを、ハイライト条件として各ハイライト要素ごとに登録していきます。</p>

<p>各設定項目は次の通りです。</p>

<table>
	<thead>
		<tr><th>項目</th><th>説明</th></tr>
	</thead>
	<tbody>
		<tr><th>RE</th><td>チェックがオンのとき、開始文字列および終了文字列に入力されているテキストを正規表現として扱います（<em>R</em>egular <em>E</em>xpressionの略）。</td></tr>
		<tr><th>IC</th><td>チェックがオンのとき、大文字/小文字を区別しません（<em>I</em>gnore <em>C</em>aseの略）。例えば、開始文字列を「abc」として「IC」にチェックを入れると、「ABC」「abc」「Abc」などに一致します。</td></tr>
		<tr><th>開始文字列</th><td>パターンの開始を示すテキストです。この項目は必須です。</td></tr>
		<tr><th>終了文字列</th><td>パターンの終了を示すテキストです。この項目は空でも構いません。</td></tr>
		<tr><th>説明</th><td>登録する語句にメモがあるときにこのフィールドを使用できます。この項目はハイライトに影響せず、空でも構いません。</td></tr>
	</tbody>
</table>

<p>このとき:</p>
<ul>
	<li><p>開始文字列に何も入力せず、終了文字列のみ入力されている定義は無視されます。</p></li>
	<li><p>開始文字列・終了文字列には正規表現が使えますが、「両方とも正規表現」または「両方とも通常のテキスト」でなければなりません。</p></li>
</ul>


<p>「RE」がチェックされておらず終了文字列が入力されていない定義は、入力補完候補としても使われます。</p>
</section>


<section id="cf">
<h2>関連項目</h2>
<ul>
	<li><a href="syntax_definition.html">シンタックスを定義する</a></li>
	<li><a href="about_regex.html">正規表現を使う</a></li>
</ul>
</section>

</body>
</html>
